From 8dc28d5ce537aeb37c9c1aae9783e2277e53405e Mon Sep 17 00:00:00 2001 From: Tim Deegan Date: Wed, 18 Jul 2007 09:06:41 +0100 Subject: [PATCH] [HVM] Hide contents of IA32_MCG_STATUS MSR from the guest. It can't clear the MCE, and it probably can't understand it anyway. Signed-off-by: Tim Deegan --- xen/arch/x86/hvm/svm/svm.c | 5 +++++ xen/arch/x86/hvm/vmx/vmx.c | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/xen/arch/x86/hvm/svm/svm.c b/xen/arch/x86/hvm/svm/svm.c index d1fca8d1dc..7c13950859 100644 --- a/xen/arch/x86/hvm/svm/svm.c +++ b/xen/arch/x86/hvm/svm/svm.c @@ -2154,6 +2154,11 @@ static void svm_do_msr_access( svm_inject_exception(v, TRAP_gp_fault, 1, 0); break; + case MSR_IA32_MCG_STATUS: + /* No point in letting the guest see real MCEs */ + msr_content = 0; + break; + default: if ( rdmsr_hypervisor_regs(ecx, &eax, &edx) || rdmsr_safe(ecx, eax, edx) == 0 ) diff --git a/xen/arch/x86/hvm/vmx/vmx.c b/xen/arch/x86/hvm/vmx/vmx.c index ccf3a8fad0..1c22349161 100644 --- a/xen/arch/x86/hvm/vmx/vmx.c +++ b/xen/arch/x86/hvm/vmx/vmx.c @@ -2622,6 +2622,10 @@ static int vmx_do_msr_read(struct cpu_user_regs *regs) break; case MSR_IA32_VMX_BASIC...MSR_IA32_VMX_PROCBASED_CTLS2: goto gp_fault; + case MSR_IA32_MCG_STATUS: + /* No point in letting the guest see real MCEs */ + msr_content = 0; + break; default: switch ( long_mode_do_msr_read(regs) ) { -- 2.30.2